#ifndef MOVING_ENTITY_H
#define MOVING_ENTITY_H

#include "BaseGameEntity.h"

class MovingEntity : public BaseGameEntity
{
protected:
	float fMass;
	Vector3D v3Velocity;
	Vector3D v3Heading;
	float fMaxSpeed;
	float fMaxForce;
	float fMaxTurnRate;	//radians per second

public:
	MovingEntity() {fMass = 1; fMaxSpeed = fMaxForce = 20; fMaxTurnRate = 3.141; }
	void setMass(float mass) { fMass = mass; }
	void setVelocity(Vector3D vel) { v3Velocity = vel; }
	void setVelocity(float x, float y, float z) {v3Velocity.setX(x); v3Velocity.setY(y); v3Velocity.setZ(z); }
	void setMaxSpeed(float mSpeed) { fMaxSpeed = mSpeed; }
	void setMaxForce(float mForce) { fMaxForce = mForce; }

	float getMass() { return fMass; }
	Vector3D getVelocity() { return v3Velocity; }
	Vector3D getHeading() { return v3Heading; }
	float getMaxSpeed() { return fMaxSpeed; }
	float getMaxForce() { return fMaxForce; }
	virtual void Update(float);
	virtual void Render();
};

#endif